SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO


CREATE PROCEDURE [dbo].[SP_TXMVTO_CNTB_Q39]                    
/*---------------------------------------------------------------------*/                        
/*----- Empresa          : OFISIS S.A.                            -----*/                        
/*----- Cliente          : OFISIS S.A.                            -----*/                        
/*----- Sistema          : Contabilidad                           -----*/                        
/*----- Modulo           : Empresa                                -----*/                        
/*----- Programa         : Reporte de ajuste por inflacion        -----*/                        
/*----- Nombre           : SP_TXMVTO_CNTB_Q39                     -----*/                        
/*----- Script           : TXMVTO_CNTB                            -----*/                        
/*----- Desarrollado     : Percy Garcia                           -----*/                        
/*----- Fecha            : 17/11/2003                             -----*/                        
/*----- Base de Datos    : MS SQL Server                          -----*/                        
/*----- Version BD       : 2000                                   -----*/                        
/*----- Invoca a SP      :                                        -----*/                        
/*---------------------------------------------------------------------*/                        
/*----- Comentarios      : Ajuste caso Ctas Inventario            -----*/                        
/*---------------------------------------------------------------------*/                        
/*---------------------------------------------------------------------*/                        
/*----- Drop Proc SP_TXMVTO_CNTB_Q39                              -----*/                        
/*----- Grant ALL     On SP_TXMVTO_CNTB_Q39 To PUBLIC             -----*/                        
/*----- SP_TXMVTO_CNTB_Q39 '01', 1, 6, '001', '095', 2003, 11,                       
2003, 10, 'MEN', 'SOL', '0000000002', 'OFISIS', '01/11/2003', 5,                   
                             'N', 1, '01/01/2003', 1.00632603, '' -----*/                        
/*---------------------------------------------------------------------*/                        
                  
@ISCO_EMPR           TD_VC_002,                        
@INNU_CNTB_EMPR      TD_IN_001_CONT,                        
@ISCO_UNID_CNTB      TD_VC_003,                        
@INNU_ANNO           TD_IN_004_ANNO,                        
@INNU_MESE           TD_IN_002_MESE,                        
@INNU_ANNO_HIST      TD_IN_004_ANNO,                        
@INNU_MESE_HIST      TD_IN_002_MESE,                        
@ISST_TIPO_ACTU      TD_VC_003,                       
@INNV_INFO_CNTA      TD_IN_001,                     
@INFA_ACTU_INVE      TD_NU_009_004,                     
@ISCO_MONE           TD_VC_003,             
@ISID_CTAS_INVE      TD_VC_003,       
@ISID_CTAS_PROD      TD_VC_003,                   
@ISID_0005           TD_VC_003,                   
@ISID_COMP           TD_VC_003,                   
@ISST_GENE_ACTI      TD_VC_001,       
@ISST_GENE_LOGI      TD_VC_001,       
@ISST_GENE_PROD      TD_VC_001,   
@ISST_REEM_ASIE      TD_VC_001      
                      
As                    
                     
 Declare                         
                      
 @CSCO_CNTA_EMPR     TD_VC_020,                         
 @CSST_VALO_LIMI     TD_VC_001,                         
 @CSCO_CONS_REIB     TD_VC_020,                         
 @CSCO_CONS_REIR     TD_VC_020,                         
 @CNNU_MESE          TD_IN_002_MESE,                        
 @CNIM_SALD          TD_NU_016_004,                        
 @CNIM_SALD_CONS     TD_NU_016_004,                        
 @CNIM_LIMI          TD_NU_016_004,                        
 @VNFA_ACTU          TD_NU_009_004,                        
 @VNVA_REIN          TD_NU_016_004,                        
 @VNNU_IND1          TD_NU_009_004,                         
 @VNNU_IND2          TD_NU_009_004,                        
 @VNNU_SECU          TD_IN_001,                      
 @VSCO_CNTA_REIB     TD_VC_020,                       
 @VSCO_CNTA_REIR     TD_VC_020,        
 @VSCO_CNTA_REII     TD_VC_020,                       
 @VSTI_OPER          TD_VC_003,                       
 @VSTI_OPER_0001   TD_VC_003,                       
 @VSST_FLAG          TD_VC_001,                       
 @VNIM_CALC_DIRE     TD_NU_016_004,                       
 @VSDE_GLOS          Varchar(50),                       
 @VSCO_CNTA_INVE     TD_VC_020,                    
 @VSCO_CNTA_REBI     TD_VC_020,                    
 @VSCO_CNTA_RERI     TD_VC_020,         
 @VNIM_SALD_COMP     TD_NU_016_004,                    
 @VNIM_INVE_FINA     TD_NU_016_004,                     
 @VNIM_INVE_FIN1     TD_NU_016_004,                     
 @VNIM_ACUM          TD_NU_016_004,                     
 @VNNU_MESE          TD_IN_001,                       
 @VNNU_ANNO          TD_IN_001,                    
 @VNIM_COMP_AJUS     TD_NU_016_004,                     
 @VNIM_CONS_AJUS     TD_NU_016_004,                     
 @VNIM_CONS_ACUM     TD_NU_016_004,                 
                
 @VDFE_CAMB          TD_DT_001,                 
 @VSST_LIMI_INVE     TD_VC_001,                 
 @VSCO_MONE_0001     TD_VC_003,                 
 @VSCO_MONE_BA01     TD_VC_003,                 
 @VSCO_MONE_INVE     TD_VC_003,                 
 @VSST_TIPO_INVE     TD_VC_003,                 
 @VSST_CAMB_INVE     TD_VC_003,                 
 @VNIM_LIMI_INVE     TD_NU_016_004,                 
 @VNFA_CAMB          TD_NU_015_006,                
 @CSCO_MONE_LIMI     TD_VC_003,                  
 @CSST_TIPO_CAMB     TD_VC_003,                  
 @CSST_CNTA_CAMB     TD_VC_003,           
 @VNVA_0001          TD_NU_015_006                      
                      
Select                      
 @VNFA_ACTU = 0,                        
 @VNVA_REIN = 0,                        
 @VNNU_IND2 = 0.00,                        
 @VNNU_IND1 = 0.00                       
                     
 -- TABLA QUE REGISTRA LAS COMPRAS AL MES                     
 Create Table #TWSALD_MESE(NU_MESE Int NULL, IM_SALD Numeric(16, 4) NULL, IM_AJUS Numeric(16, 4) NULL)                    
                    
 -- tabla 0003 graba las compras del a?o con su importe ajustado                    
 Create Table #TWSALD_MESE_0001(NU_MESE Int NULL, IM_SALD Numeric(16, 4) NULL, ST_FLAG Varchar(1) NULL, IM_AJUS Numeric(16, 4) NULL)                    
                    
 Select Top 1 @VSCO_CNTA_INVE = CO_CNTA_EMPR,                     
 @VSCO_CNTA_REBI = CO_CNTA_REIB,                     
 @VSCO_CNTA_RERI = CO_CNTA_REIR,                 
 @VSST_LIMI_INVE = ST_VALO_LIMI,                 
 @VNIM_LIMI_INVE = IM_LIMI,                     
 @VSCO_MONE_INVE = CO_MONE,                 
 @VSST_CAMB_INVE = ST_CNTA_CAMB,                 
 @VSST_TIPO_INVE = (Case When ST_TIPO_CAMB = 'TRA' Then 'CIE' Else ST_TIPO_CAMB End)                     
 From TMPLAN_EMPR                     
 Where CO_EMPR = @ISCO_EMPR                    
 And NU_ANNO = 9999                    
 And ST_TIPO_CUEN = 'INV'      
 And ST_AJUS = 'S'                  
                    
 -- CARGA LAS COMPRAS DEL A?O <= INNU_MESE (CUENTAS NO SEAN DE CONSUMO E INVENTARIO ),                  
 -- pero que esten en num conta. op. inventarios                  
 Insert Into #TWSALD_MESE (NU_MESE, IM_SALD)                    
 Select t3.NU_MESE, IsNull(Sum( ((Ascii(t3.TI_OPER)/67)* IsNull(t3.IM_MVTO_CNTB, 0))), 0)                       
 - IsNull(Sum(((65/Ascii(t3.TI_OPER))* IsNull(t3.IM_MVTO_CNTB, 0))), 0)                    
 From TMPLAN_EMPR t1, TTIDEN_CNTA t2, TXMVTO_CNTB t3                    
 Where t1.CO_EMPR = @ISCO_EMPR                    
 And IsNull(t1.ST_TIPO_CUEN, '') = ''                    
 And t1.NU_ANNO = 9999                    
 And t1.TI_SITU = 'ACT'                    
 And t2.CO_EMPR = t1.CO_EMPR                     
 And t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR                     
 And t2.NU_ANNO = 9999                    
 And t2.NU_CNTB_EMPR = @INNU_CNTB_EMPR                    
 And t2.ID_CNTA = @ISID_COMP--@ISID_CTAS_INVE                   
 And t3.CO_EMPR = @ISCO_EMPR                     
 And t3.NU_CNTB_EMPR = @INNU_CNTB_EMPR                     
 And t3.CO_UNID_CNTB = @ISCO_UNID_CNTB                    
 And t3.NU_ANNO = @INNU_ANNO         
 And t3.NU_MESE <= @INNU_MESE                    
 And t3.CO_CNTA_EMPR = t1.CO_CNTA_EMPR                    
 And t3.SI_MVTO_CNTB = 'APR'                    
 Group By t3.NU_MESE                    
 Order By t3.NU_MESE                    
                    
 Select @VNIM_SALD_COMP = IsNull(Sum(IM_SALD), 0)            
 From #TWSALD_MESE                    
                    
 Insert Into #TWSALD_MESE_0001 (NU_MESE, IM_SALD, IM_AJUS) Select NU_MESE, IM_SALD, IM_AJUS From #TWSALD_MESE                      
                    
 -- CURSOR HALLA VALORES AJUSTADOS PARA LAS COMPRAS                     
 Declare CU_TWSALD_MESE_0001_1 Cursor For                     
 Select NU_MESE, IM_SALD                     
 From #TWSALD_MESE                    
 Order By NU_MESE Desc                  
                  
 Open CU_TWSALD_MESE_0001_1                  
 Fetch CU_TWSALD_MESE_0001_1 Into @CNNU_MESE, @CNIM_SALD                    
 While @@Fetch_status = 0                        
 Begin                       
                    
 Select @VNNU_IND1 = IsNull(IN_ACTU, 1)                    
 From TTINDI_ACTU                     
 Where NU_ANNO = @INNU_ANNO                    
 And NU_MESE = @CNNU_MESE                
                    
                    
 If @ISST_TIPO_ACTU = 'MEN'                    
 Begin                    
  If @CNNU_MESE = 1                    
   Begin                     
   Select @VNNU_MESE = 12                    
   Select @VNNU_ANNO = @INNU_ANNO - 1                    
   End                     
  Else                     
   Begin                     
   Select @VNNU_MESE = @CNNU_MESE - 1                    
   Select @VNNU_ANNO = @INNU_ANNO                    
   End                     
 End                     
  Else                     
   Begin                    
   Select @VNNU_ANNO = @INNU_ANNO - 1                    
   Select @VNNU_MESE = 12                    
  End                     
                     
 Select @VNNU_IND2 = IsNull(IN_ACTU, 1)                    
 From TTINDI_ACTU                     
 Where NU_ANNO = @VNNU_ANNO                    
 And NU_MESE = @VNNU_MESE                     
                    
 If @VNNU_IND2 = 0                     
  Select @VNNU_IND2 = 1                    
                    
 Update #TWSALD_MESE_0001                    
 Set IM_AJUS = @CNIM_SALD * Round(@VNNU_IND1 / @VNNU_IND2, 3)                     
 Where NU_MESE = @CNNU_MESE                    
                    
 Fetch CU_TWSALD_MESE_0001_1 Into @CNNU_MESE, @CNIM_SALD                    
 End                     
 Close CU_TWSALD_MESE_0001_1                    
 Deallocate CU_TWSALD_MESE_0001_1                    
 -- FIN CURSOR HALLA VALORES AJUSTADOS PARA LAS COMPRAS                     
                    
 Select @VSST_FLAG = 'N'                   
 Select @VSDE_GLOS = 'ASIENTO DE AJUSTE X INFLACION'                      
                    
 Update #TWSALD_MESE                     
 Set IM_AJUS = t1.IM_AJUS                    
 From #TWSALD_MESE_0001 t1, #TWSALD_MESE t2                  
 Where t2.NU_MESE = t1.NU_MESE                    
                
 Select @VNIM_CONS_ACUM = 0                  
 -- HALLANDO CONSUMO X CUENTA                    
 Declare CU_TXMVTO_CNTB_I30_1 Cursor For                     
 Select t1.CO_CNTA_EMPR, Max(t1.CO_CNTA_REIB), Max(t1.CO_CNTA_REIR),                    
 Max(t1.ST_VALO_LIMI), Max(t1.IM_LIMI),                     
 Abs(IsNull(Sum( ((Ascii(t3.TI_OPER)/67)* IsNull(t3.IM_MVTO_CNTB, 0))), 0)                       
 - IsNull(Sum(((65/Ascii(t3.TI_OPER))* IsNull(t3.IM_MVTO_CNTB, 0))), 0)),                 
 Max(t1.CO_MONE), (Case When Max(t1.ST_TIPO_CAMB) = 'TRA' Then 'CIE' Else Max(t1.ST_TIPO_CAMB) End), Max(t1.ST_CNTA_CAMB)                 
 From TMPLAN_EMPR t1, TXMVTO_CNTB t3                    
 Where t1.CO_EMPR = @ISCO_EMPR                    
 And t1.ST_TIPO_CUEN = 'CON'      
 And t1.ST_AJUS = 'S'      
  
 And ( @ISST_REEM_ASIE = 'S' Or  (@ISST_REEM_ASIE = 'N'  
  
And ( (@ISST_GENE_ACTI = 'S') Or ( @ISST_GENE_ACTI = 'N'       
 And Not Exists (Select tA.CO_EMPR From TTIDEN_CNTA tA       
 Where tA.CO_EMPR = @ISCO_EMPR       
 And tA.NU_CNTB_EMPR = @INNU_CNTB_EMPR       
 And tA.ID_CNTA = @ISID_0005       
 And tA.CO_CNTA_EMPR = t1.CO_CNTA_EMPR)))      
      
 And ( (@ISST_GENE_LOGI = 'S') Or ( @ISST_GENE_LOGI = 'N'       
 And Not Exists (Select tA.CO_EMPR From TTIDEN_CNTA tA       
 Where tA.CO_EMPR = @ISCO_EMPR       
 And tA.NU_CNTB_EMPR = @INNU_CNTB_EMPR       
 And tA.ID_CNTA = @ISID_CTAS_INVE      
 And tA.CO_CNTA_EMPR = t1.CO_CNTA_EMPR)))      
      
 And ( (@ISST_GENE_PROD = 'S') Or ( @ISST_GENE_PROD = 'N'       
 And Not Exists (Select tA.CO_EMPR From TTIDEN_CNTA tA       
 Where tA.CO_EMPR = @ISCO_EMPR       
 And tA.NU_CNTB_EMPR = @INNU_CNTB_EMPR       
 And tA.ID_CNTA = @ISID_CTAS_PROD      
 And tA.CO_CNTA_EMPR = t1.CO_CNTA_EMPR)))                ))  
  
 And (IsNull(t1.CO_CNTA_REIB, '') != '' Or IsNull(t1.CO_CNTA_REIR, '') != '')                    
 And t1.NU_ANNO = 9999                    
 And t1.TI_SITU = 'ACT'                    
 And t3.CO_EMPR = @ISCO_EMPR                     
 And t3.NU_CNTB_EMPR = @INNU_CNTB_EMPR                     
 And t3.CO_UNID_CNTB = @ISCO_UNID_CNTB                    
 And t3.NU_ANNO = @INNU_ANNO                    
 And t3.NU_MESE <= @INNU_MESE                    
 And t3.CO_CNTA_EMPR = t1.CO_CNTA_EMPR                    
 And t3.SI_MVTO_CNTB = 'APR'                    
 Group By t1.CO_CNTA_EMPR                    
 Order By t1.CO_CNTA_EMPR                    
                    
 Open CU_TXMVTO_CNTB_I30_1                    
 Fetch CU_TXMVTO_CNTB_I30_1 Into @CSCO_CNTA_EMPR, @CSCO_CONS_REIB, @CSCO_CONS_REIR,                     
 @CSST_VALO_LIMI, @CNIM_LIMI, @CNIM_SALD_CONS, @CSCO_MONE_LIMI, @CSST_TIPO_CAMB, @CSST_CNTA_CAMB                          
 While @@Fetch_status = 0                        
 Begin                       
                    
 -- (TOTAL DE COMPRAS DE LOS MESES HASTA MES INGRESADO) - (CONSUMO)                    
 Select @VNIM_INVE_FINA = Abs(@VNIM_SALD_COMP) - Abs(@CNIM_SALD_CONS)                    
 -- ACUMULA CONSUMO DE TODAS LAS CTAS                 
 Select @VNIM_CONS_ACUM = @VNIM_CONS_ACUM + IsNull(@CNIM_SALD_CONS, 0)                
                
 Select @VNIM_INVE_FIN1 = @VNIM_INVE_FINA                   
                   
 -- INSERTO LOS SALDOS MENSUALES A LA TABLA QUE VA A TENER LOS IMPORTES AJUSTADOS                   
 Delete From #TWSALD_MESE_0001                    
 Insert Into #TWSALD_MESE_0001 (NU_MESE, IM_SALD, IM_AJUS) Select NU_MESE, IM_SALD, IM_AJUS From #TWSALD_MESE                    
                    
 Select @VNIM_ACUM = 0                    
                    
 -- CURSOR DE LAS COMPRAS DE LOS MESES                    
 Declare CU_TWSALD_MESE_I01 Cursor For                     
 Select NU_MESE, Abs(IM_SALD)                    
 From #TWSALD_MESE                    
 Order By NU_MESE Desc                     
                    
 Open CU_TWSALD_MESE_I01                 
 Fetch CU_TWSALD_MESE_I01 Into @CNNU_MESE, @CNIM_SALD                    
 While @@Fetch_status = 0                   
 Begin                       
                    
 -- EVALUA VALOR INVENTARIO FINAL VS VALOR DE COMPRAS                     
         Select @VNIM_ACUM = @VNIM_ACUM + @CNIM_SALD                    
                  
  If @VNIM_ACUM > @VNIM_INVE_FINA                    
    Begin                     
    Update #TWSALD_MESE_0001                    
    Set ST_FLAG = 'S'                    
    Where NU_MESE = @CNNU_MESE                    
           Select @VNIM_ACUM = @VNIM_ACUM - @CNIM_SALD                    
    End                     
                     
  If @VNIM_ACUM = @VNIM_INVE_FINA                    
    Begin              
    Update #TWSALD_MESE_0001                    
    Set ST_FLAG = 'S'                    
    Where NU_MESE < @CNNU_MESE                    
    Break                  
    End                   
                    
 Fetch CU_TWSALD_MESE_I01 Into @CNNU_MESE, @CNIM_SALD                    
 End                     
 Close CU_TWSALD_MESE_I01                    
 Deallocate CU_TWSALD_MESE_I01                    
                     
 Delete From #TWSALD_MESE_0001                    
 Where ST_FLAG = 'S'                    
                  
 Select @VNIM_CALC_DIRE = 0                    
 If @VNIM_ACUM < @VNIM_INVE_FINA                    
   Begin                     
   Select @VNIM_CALC_DIRE = (@VNIM_INVE_FINA - @VNIM_ACUM)*@INFA_ACTU_INVE                    
   End                     
             
 -- SACO EL INVENTARIO FINAL (@VNIM_INVE_FINA) = SUMA DE TODOS LAS COMPRAS AJUST. QUE SUMAN EL INVENTARIO FINAL...(Y)                    
 Select @VNIM_INVE_FINA = IsNull(Sum(IM_AJUS), 0) + @VNIM_CALC_DIRE From #TWSALD_MESE_0001                     
                
 -- SACO EL CONSUMO TOTAL AJUSTADO (@VNIM_CONS_AJUS) = SUMA DE LAS COMPRAS AJUSTADAS - EL INVENTARIO FINAL ...(X)                    
 Select @VNIM_COMP_AJUS = Abs(IsNull(Sum(IM_AJUS), 0)) From #TWSALD_MESE                    
                
  If @VNIM_INVE_FINA > 0                    
  Select @VSTI_OPER = 'CAR'                    
  Else        
  Select @VSTI_OPER = 'ABO'                    
                    
  If @VSTI_OPER = 'CAR'                      
  Select @VSTI_OPER_0001 = 'ABO'                      
                      
  If @VSTI_OPER = 'ABO'                      
  Select @VSTI_OPER_0001 = 'CAR'                      
                    
  Select @VNIM_INVE_FINA = Abs(@VNIM_INVE_FINA)                 
                
If (@VSST_LIMI_INVE = 'S' And @VNIM_LIMI_INVE > 0)                 
  Begin                           
                  
   -- inicio de conversion                 
   -- EVALUA SI LA MONEDA DE LA CONTAB ORIGEN ES IGUAL A LA MONEDA DEL VALOR LIMITE                  
   -- SI SON DIFERENTES ENTONCES CONVIERTE EL IMPORTE LIMITE A LA MONEDA DE LA CONT. ORIGEN                  
   If @ISCO_MONE != @VSCO_MONE_INVE                
     Begin                   
     -- saca moneda                  
     Select @VSCO_MONE_0001 = CO_MON1,                       
     @VSCO_MONE_BA01 = CO_MONE_BAS1                        
     From TMCONV_MONE                       
     Where CO_MONE_ORIG = @VSCO_MONE_INVE                       
     And CO_MONE_DEST = @ISCO_MONE                  
                          
    --- caso promedio mensual                  
    If @VSST_TIPO_INVE = 'PRO'                      
      Select @VNFA_CAMB = (Case When @VSST_CAMB_INVE = 'COM' Then FA_CAMB_CMPR                        
      Else FA_CAMB_VNTA End)                         
      From TCFACT_PRME                         
      Where CO_EMPR = @ISCO_EMPR                      
      And CO_MONE = @VSCO_MONE_0001                        
      And CO_MONE_BASE = @VSCO_MONE_BA01                      
      And NU_ANNO = @INNU_ANNO                         
      And NU_MESE = @INNU_MESE                          
                           --- caso cierre             
     If @VSST_TIPO_INVE = 'CIE'                
      Select @VNFA_CAMB = (Case When @VSST_CAMB_INVE = 'COM' Then FA_CAMB_CMPR                        
      Else FA_CAMB_VNTA End)                         
      From TCFACT_CIER                         
      Where CO_MONE = @VSCO_MONE_0001                        
      And NU_ANNO = @INNU_ANNO                         
      And NU_MESE = @INNU_MESE                       
                  
   -- @CSST_TIPO_CAMB (CIE, TRA, PRO)  @CSST_CNTA_CAMB(COM, VEN)                    
      -- ARMA FECHA EN BASE AL A?O Y MES INGRESADO                  
      Select @VDFE_CAMB  = Convert(DateTime, '01' + '/' + Convert(VarChar(2),@INNU_MESE) + '/' + CONVERT(VarChar(4),@INNU_ANNO) , 103)              
                
Execute  SP_CONV_MONE_Q06  @ISCO_EMPR, @VSCO_MONE_INVE, @INNU_CNTB_EMPR, '', @VSST_CAMB_INVE,                            
      @VNFA_CAMB, @VDFE_CAMB, @VNIM_LIMI_INVE, 'P',@VSST_TIPO_INVE, @VNIM_LIMI_INVE OutPut, @VNVA_0001 Output                   
                
   -- fin conversion                 
                
     End    -- FIN  DE DIFERENCIA DE MONEDAS                 
                
     If @VNIM_INVE_FINA > @VNIM_LIMI_INVE                
  Select @VNIM_INVE_FINA = @VNIM_LIMI_INVE                
                
    End  -- FIN EVALUAR VALOR LIMITE                
                    
 Select @VNIM_CONS_AJUS = @VNIM_COMP_AJUS - @VNIM_INVE_FINA                    
                      
 Select @VNIM_CONS_AJUS = Abs(@VNIM_CONS_AJUS)                    
                        
  -- GRABA LINEA INVENTARIO FINAL                     
  If @VNIM_INVE_FINA > 0 And @VSST_FLAG = 'N' And IsNull(@VSCO_CNTA_INVE, '') != ''                    
  And (IsNull(@VSCO_CNTA_RERI, '') != '' Or IsNull(@VSCO_CNTA_REBI, '') != '')                    
  Begin                     
                    
/*   If @CSST_VALO_LIMI = 'S' And @CNIM_LIMI > 0                    
   Begin                     
   If @VNIM_INVE_FINA > @CNIM_LIMI                      
    Select @VNIM_INVE_FINA = @CNIM_LIMI                    
   End */                    
                  
  Insert Into #TWMVTO_CNT1                             
  (CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,                   
  IM_MVTO_CNTB, FA_ACTU, IM_MVTO_ANTE, FA_ACTU_ANTE, ST_FLAG, IM_LIMI)                  
  Values                            
  (@VSCO_CNTA_INVE, NULL, NULL, NULL, NULL,                   
  Round(@VNIM_INVE_FINA, 2), NULL, Round(@VNIM_INVE_FIN1, 2), NULL, 'S', @VNIM_LIMI_INVE)                       
                    
  Select @VSST_FLAG = 'S'                    
                       
  End                     
  -- FIN GRABA LINEA INVENTARIO FINAL                     
                    
  -- GRABA LINEA CONSUMO                    
  If @VNIM_CONS_AJUS > 0                    
  Begin                     
/*    If @CSST_VALO_LIMI = 'S' And @CNIM_LIMI > 0                    
        Begin                     
    If @VNIM_CONS_AJUS > @CNIM_LIMI                      
     Select @VNIM_CONS_AJUS = @CNIM_LIMI                    
     End   */                  
                
  If (@CSST_VALO_LIMI = 'S' And @CNIM_LIMI > 0)                 
  Begin                           
                
   -- EVALUA SI LA MONEDA DE LA CONTAB ORIGEN ES IGUAL A LA MONEDA DEL VALOR LIMITE                  
   -- SI SON DIFERENTES ENTONCES CONVIERTE EL IMPORTE LIMITE A LA MONEDA DE LA CONT. ORIGEN                  
   If @ISCO_MONE != @CSCO_MONE_LIMI                  
     Begin                   
     -- saca moneda                  
     Select @VSCO_MONE_0001 = CO_MON1,                       
     @VSCO_MONE_BA01 = CO_MONE_BAS1                        
     From TMCONV_MONE                       
     Where CO_MONE_ORIG = @CSCO_MONE_LIMI                       
     And CO_MONE_DEST = @ISCO_MONE                  
                            
    --- caso promedio mensual                  
    If @CSST_TIPO_CAMB = 'PRO'                      
      Select @VNFA_CAMB = (Case When @CSST_CNTA_CAMB = 'COM' Then FA_CAMB_CMPR                        
      Else FA_CAMB_VNTA End)                         
      From TCFACT_PRME                         
      Where CO_EMPR = @ISCO_EMPR                      
      And CO_MONE = @VSCO_MONE_0001                        
      And CO_MONE_BASE = @VSCO_MONE_BA01                      
      And NU_ANNO = @INNU_ANNO                         
      And NU_MESE = @INNU_MESE                          
                      
    --- caso cierre          
     If @CSST_TIPO_CAMB = 'CIE'                      
      Select @VNFA_CAMB = (Case When @CSST_CNTA_CAMB = 'COM' Then FA_CAMB_CMPR                        
      Else FA_CAMB_VNTA End)                         
      From TCFACT_CIER                         
      Where CO_MONE = @VSCO_MONE_0001                        
      And NU_ANNO = @INNU_ANNO                         
      And NU_MESE = @INNU_MESE                       
                  
   -- @CSST_TIPO_CAMB (CIE, TRA, PRO)  @CSST_CNTA_CAMB(COM, VEN)                    
                
      -- ARMA FECHA EN BASE AL A?O Y MES INGRESADO                  
      Select @VDFE_CAMB  = Convert(DateTime, '01' + '/' + Convert(VarChar(2),@INNU_MESE) + '/' + CONVERT(VarChar(4),@INNU_ANNO) , 103)                
                
      Execute  SP_CONV_MONE_Q06  @ISCO_EMPR, @CSCO_MONE_LIMI, @INNU_CNTB_EMPR, '', @CSST_CNTA_CAMB,                            
      @VNFA_CAMB, @VDFE_CAMB, @CNIM_LIMI, 'P',@CSST_TIPO_CAMB, @CNIM_LIMI OutPut, @VNVA_0001 Output                   
                
      End   -- FIN CONVERSION                 
                
  If @VNIM_CONS_AJUS > @CNIM_LIMI                 
 Select @VNIM_CONS_AJUS = @CNIM_LIMI                
  End -- FIN EVALUAR VALOR LIMITE                 
                  
  Insert Into #TWMVTO_CNT1                            
  (CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,                   
  IM_MVTO_CNTB, FA_ACTU, IM_MVTO_ANTE, FA_ACTU_ANTE, ST_FLAG, IM_LIMI)                  
  Values                            
  (@CSCO_CNTA_EMPR, NULL, NULL, NULL, NULL,                   
  Round(@VNIM_CONS_AJUS, 2), NULL, Round(@CNIM_SALD_CONS, 2), NULL, 'S', @CNIM_LIMI)                       
                        
  End                     
  -- FIN GRABA LINEA CONSUMO                    
                    
 Fetch CU_TXMVTO_CNTB_I30_1 Into @CSCO_CNTA_EMPR, @CSCO_CONS_REIB, @CSCO_CONS_REIR,                     
 @CSST_VALO_LIMI, @CNIM_LIMI, @CNIM_SALD_CONS, @CSCO_MONE_LIMI, @CSST_TIPO_CAMB, @CSST_CNTA_CAMB                          
 End                     
 Close CU_TXMVTO_CNTB_I30_1                    
 Deallocate CU_TXMVTO_CNTB_I30_1                    
                
 Update #TWMVTO_CNT1                
 Set IM_MVTO_ANTE = Round(@VNIM_SALD_COMP - IsNull(@VNIM_CONS_ACUM, 0), 2)                
 Where CO_CNTA_EMPR = @VSCO_CNTA_INVE                
           
 Return                          
                        
/*--------------------------------------- Fin ---------------------------------*/                        
                        
                       
                    
                    
                    
                        
                        
                      
                    
                  
                  
                  
                  
                  
                  
                  
                
                
                
              
            
          
        
        
        
      
    
  





GO
